home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / DOC / REPORT.TXT < prev    next >
Encoding:
Text File  |  1995-10-29  |  28.6 KB  |  583 lines

  1.  
  2.         Fehler- und Änderungsreport
  3.         ---------------------------
  4.  
  5. Der Report wird chronologisch von hier an bis unten gelesen. Die
  6. Zeilen "*** [...] Fertigstellung [...] ***" stehen unter den bis
  7. dahin gemachten Änderungen.
  8.  
  9.  
  10. Bibliothek
  11. ----------
  12. - WindowLists und TextWindows benutzen nicht mehr FastGEM0, da angeblich
  13.   noch Fehler bei Benutzung von Bigscreen auftreten.
  14.  
  15. *** 17.12.90  Fertigstellung der Version 2.2, Compiler 4.0 ***
  16.  
  17. Bibliothek
  18. ----------
  19. - Der Gepard-Editor stützt nicht mehr dauernd beim Verlassen ab (trat nicht
  20.   bei jedem Anwender auf, aber wenn, dann massiv). Das KbdEvents-Modul
  21.   wurde entsprechend korrigiert und kann nun wieder benutzt werden.
  22. - Modula-System funktioniert nun auch mit dem 68030er Board "hyperCACHE 030".
  23. - Strings.Compare arbeitet wieder richtig mit Umlauten.
  24. - Directory: SetCurrentDir/SetDefaultPath rufen GEMDOS nicht mehr auf, wenn
  25.   der Pfad leer ist, weil das bei TOS 1.0/1.2 zu Fehlern führt (es erfolgt
  26.   sonst Zugriff auf das Laufwerk A: und Dsetpath() liefert einen Fehlercode).
  27. - Bei TOS 1.2 tritt kein Fehler mehr auf, wenn in der Shell das Sternchen
  28.   ("*") im Pfadnamen der Parameterdatei eingegeben wird.
  29. - Text.ReadToken funktioniert nun auch bei Disk-Files (las bisher immer nur
  30.   ein Zeichen ein).
  31. - Files.Open/Create, Directory.MakeFullPath und FileNames.ValidatePath
  32.   funktionieren nun auch mit Umlauten im Namen, da die Umlaute intern nun
  33.   nicht mehr von Klein nach Groß gewandelt werden.
  34. - EasyGEM0/AESForms.FormAlert optimiert: brauchen nun weniger Stack.
  35. - EasyGEM1.SelectFile korrigiert (veränderte den GemHandle, was dann zu GEM-
  36.   Laufzeitfehlern führen konnte).
  37. - Convert.ConvReal (auch StrToReal, WriteReal, ...) löst bei Verwendung der
  38.   TT-FPU keine Laufzeitfehler mehr aus, wenn der Eingabestring keine gültige
  39.   Real-Zahl darstellt, sondern setzt - wie dokumentiert - 'valid' auf FALSE.
  40. - Die 68030-Erkennung (Modul SysInfo) funktioniert nun.
  41. - TimeConv.DateToText zerstört nicht mehr die geschützten Register (D3-D6).
  42.   Dieser Fehler führte u.A. zu Range-Errors und Fehlern in FOR-Schleifen.
  43. - TextWindows: Die VT52-Codes 'moveUp', 'insertLine' und 'deleteLine' funktio-
  44.   nieren wieder korrekt, der Cursor ist wieder sichtbar.
  45. - TEMPUS und andere gelinkte Programme lassen sich (wieder) resident laden,
  46.   ohne daß bei wiederholtem Aufruf der geladenen Programme Fehler auftreten.
  47. - Bisher konnten GDOS-Fonts zwar geladen, aber nicht über die verfügbaren
  48.   Funktionen der GEM-Bibliothek benutzt werden, da "GetFaceName" dazu ein
  49.   Rückgabeparameter fehlt.
  50.   Die Lösung ist im neuen Definitionstext von 'VDIInquires' (Ordner "SRC\D")
  51.   beschrieben; eine neue Version von 'TextDemo' (DEMO-Ordner) zeigt auch
  52.   die Anwendung der Benutzung der GDOS-Fonts.
  53. - VDIAttributs.SetAbsTHeight/SetPtsTHeight waren die RückgabeWerte für Zellen-
  54.   und Zeichengröße vertauscht. Sie werden nun in der korrekten Reihenfolge
  55.   geliefert.
  56. - Wird nach "LoadFonts" der UnloadFonts-Aufruf am Ende vergessen, sorgt
  57.   das MM2-Laufzeitsystem dafür beim ExitGem oder Programmende.
  58. - Die Loader-Funktion 'CallModule' erlaubt nun auch die ARGV-Methode zur
  59.   Übergabe von Argumentzeilen > 125 Zeichen. Wie's geht, steht im Loader-
  60.   Definitionstext.
  61. - Loader.CallModule sollte nun auch mit Dateinamen > 40 Zeichen klarkommen.
  62. - Wird eine offene Datei "CON:" vom System geschlossen, tritt kein Laufzeit-
  63.   fehler (Uninitialisierte Pointer-Variable) im TextWindows-Modul mehr auf.
  64. - AESEvents.ButtonEvent erzeugt nun keine Abstürze mehr, wie z.B. "Fehler in
  65.   der Heap-Verwaltung".
  66. - FileManagement.FileInformation berücksichtigt Ordner und kann auch
  67.   Datum/Zeit verändern.
  68. - StrConv.StrTo(L)Num/Convert.ConvTo(L)Num liefern wieder korrekte Ergebnisse
  69.   bei Werten > 256.
  70. - VDIOutputs.PolyMarker funktioniert nun korrekt und hinterläßt keine Daten
  71.   mehr auf dem A3-Stack.
  72. - In MOSConfig können nun _alle_ abzufangenden Exceptions bestimmt werden;
  73.   Der Vektor für "Division durch Null" wird nicht mehr verändert, damit
  74.   unter dem Modula-System laufende Programme (z.B. bestimmte GDOS-Treiber)
  75.   keine solche Fehlermeldung mehr unnötigerweise hervorrufen. Der Compiler
  76.   prüft Divisionen durch Null nun auf andere Weise.
  77. - TextWindows.Open liefert nun FALSE im success-Parameter, wenn sich das
  78.   Fenster nicht mehr öffnen läßt, weil schon zu viele GEM-Fenster sichtbar
  79.   sind. Bisher trat dann ein Laufzeitfehler auf.
  80. - XBIOS.SetKeyTable funktioniert nun.
  81. - AESForms.FormKeyboard: Die Parameter 'ch' und 'nextObj' waren fälschlicher-
  82.   weise intern vertauscht.
  83. - WindowLists.ViewLineWL arbeitet nun definitionsgemäß.
  84. - ObjHandler.CreateSpecification funktioniert nun auch, wenn der Parameter
  85.   'spec' nicht NIL ist.
  86.  
  87. ModRef
  88. ------
  89. - ModRef (Version 1.4) erlaubt die Angabe zweier Direktiven in der Argument-
  90.   zeile: "-C" unterdrückt das Warten auf eine Taste, wenn Source-Dateien nicht
  91.   gefunden werden, "-Q" unterdrückt alle Ein-/Ausgaben (schließt "-C" ein).
  92.  
  93. LibManager
  94. ----------
  95. - Kein String-Überlauf mehr im LibManager beim Kopieren einzelner Dateien.
  96.  
  97. GME
  98. ---
  99. - Keine Abstürze mehr, nachdem ein Block markiert und mit ^X ausgeschnitten
  100.   wird.
  101. - Wird "KonfigSpeichern" in GMEConfig.InitConfig nicht aktiviert, wird auch
  102.   nicht nach der Datei "GME.GME" gesucht.
  103. - Abspeichermöglichkeiten bei Programmabsturz verbessert: Nun erscheint eine
  104.   Dateiauswahlbox und es besteht die Möglichkeit, ein Backup zu erzeugen.
  105.  
  106. Compiler
  107. --------
  108. - Die mehrdimensionalen offenen Felder sind benutzbar.
  109. - LENGTH liefert keine falschen Werte mehr bei Array- und Record-Zugriffen.
  110. - Es kommt nun die richtige Fehlermeldung, wenn beim Array-Zugriff mehr
  111.   Indices verwendet werden, als erlaubt sind.
  112. - Die Direktiven $A und $W verhalten sich nun wie im Handbuch beschrieben.
  113. - "VAL (Real-Typ, Ganzzahl-Ausdruck)" führt bei TT-FPU nicht mehr zu
  114.   fatalen Laufzeitfehlern, wie Bus-/Address Error oder Illegal Instruction.
  115. - Mehrere Fehler beim Vergleich von Variablen vom Prozedur-Typ behoben.
  116. - Bei umfangreichen Importen tritt nicht mehr die Fehlermeldung "Typ muß
  117.   identisch mit VAR-Parameter sein" auf.
  118. - Importierte externe Variablen (Vars mit fester Adreßbestimmung) haben
  119.   nun die korrekte Adresse.
  120. - INC (x, 0) erzeugt keinen Mist mehr.
  121. - ABS (regVar/forVar) verändert die Register-Variable nicht mehr.
  122. - Compiler erkennt nun Fehler, wenn unter bestimmten Umständen (z.B. EXPORT
  123.   aus lokalem Modul) die Prozedur-Implementation mehr Parameter als ihre
  124.   Definition hat.
  125. - Kein Programmabsturz mehr bei Short-REAL-Ausdrücken (ohne FPU) als
  126.   aktuelle Parameter, wie z.B. bei "WriteReal ( f(a) / f(b) )".
  127. - Ein Ausdruck "0 - x" wird nun korrekt erzeugt - vorher wurde der Wert
  128.   nicht negiert.
  129. - Conversion von REAL/LONGREAL nach SHORTINT/SHORTCARD erkennt nun alle
  130.   Überläufe.
  131. - Mehrere Fehler mit lokalen Modulen behoben, u.A. kein interner Fehler mehr
  132.   bei FORWARD-Dekl. Prozeduren, die in einem lokalen Modul implementiert werden
  133.   und die Register A5/A6 werden nicht mehr von Modulen lokal zu Prozeduren
  134.   zerstört.
  135. - Vor einer Division wird der Divisor (bei aktiviertem Range-Check) nun auf
  136.   Null geprüft, damit der eigentlich zuständige Exception-Vektor nicht mehr
  137.   benötigt wird.
  138. - Kein Programmabsturz mehr bei Aufruf von Prozeduren über Prozedurvariablen,
  139.   wenn die Proz. Open Array-Parameter hat.
  140. - SHIFT/ROTATE erlauben nun variable Schiebewerte (s. LIESMICH.TXT).
  141.  
  142. Linker
  143. ------
  144. - Es konnte vorkommen, daß der Linker die Fehlermeldung "out of memory"
  145.   bei großen Modulen anzeigte und sich auch durch Vergrößerung des freien
  146.   Speichers nicht davon abbringen lies: Es war noch eine invariable Größe
  147.   im Programm versteckt. Sie bestimmt die Anzahl der relozierbaren Adressen
  148.   pro Modul (s. Aufbau der Codemodule) und hatte eine Maximalgröße von 1000.
  149.   Dieser Wert kann nun ggf. von außen bestimmt werden. Dazu ist beim Aufruf
  150.   des Linkers, zum Beispiel von einer Batch-Datei aus, in der Argumentzeile
  151.   die Option "-R" mit dem neuen Wert anzugeben, also im Batch z.B.
  152.   "LINK <name> -R2000".
  153. - Vom C-Linker "MM2CLink" erzeugte Module können nun uneingeschränkt
  154.   optimiert gelinkt werden.
  155.  
  156. Shell
  157. -----
  158. - Die Menüzeile hat nun die korrekte Höhe und bildet keinen falschen Strich
  159.   mehr am unteren Rand.
  160. - Vor Start und nach Rückkehr von Programmen schließt die Shell auch die
  161.   noch offenen Fenster von Accessories.
  162. - Das Starten von Programmen, deren Länge von Pfad + Name mehr als 40 Zeichen
  163.   umfaßt, ist nun wieder möglich.
  164. - Die MM2Shell installiert die Icons der vorhandenen Laufwerke jetzt erst
  165.   _nach_ dem Ausführen der Shell-Batch-Datei. Weiterhin bieten beide Shell
  166.   die zusätzlichen Batch-Anweisungen POSTAMBLE1 und POSTAMBLE2, mit denen
  167.   das Starten von zwei Programmen vor Verlassen der Shell gestartet werden
  168.   können. Mehr dazu im LIESMICH.TXT, "Erweiterungen in der Shell".
  169. - Die Datei-Information ist nun auch bei Ordnern möglich, allerdings hat sie
  170.   nur ab TOS 1.4 Sinn, um den Ordnernamen zu verändern.
  171. - Die "bye bye"-Meldung beim Programmende wurde entfernt.
  172. - Durch eine Korrektur im Loader können nun auch gelinkte (!) Programme
  173.   gestartet werden, wenn ein gleichnamiges Modul in der Shell resident ist.
  174.   Beispiel: Ein Programm "SYSINFO.PRG" führt nicht mehr zur Verwechselung mit
  175.   dem residenten Modul "SysInfo".
  176. - Die Formatier-Funktion kann nun wieder beide Laufwerke ansprechen.
  177.  
  178. *** 17.4.91  Stand: Shell 2.2b, Compiler 4.1, GME 1.1, Linker 2.15 ***
  179.  
  180. Bibliothek
  181. ----------
  182. - Loader.CallModule: Module, die das Bit 7 im Kennungsbyte des Modul-Headers
  183.   gesetzt haben (zeigt 68020-Code an, s. Handbuch A.9), rufen keine Fehler-
  184.   meldung (FPU nicht vorhanden) mehr hervor.
  185. - MathLib0.exp/pwrOfTen/pwrOfTwo melden keinen Überlauf-Fehler mehr bei
  186.   bestimmten negativen Argumenten (ca. -1000 bis -5000) sondern liefern
  187.   anstandslos Null.
  188. - Mit MM2 erzeugte Programme laufen nun auch auf dem Mega STE und mit
  189.   PAMs Net problemlos.
  190. - Dokumentation im Def-Text von VDIInputs zu RequestLoc/TestLoc sowie
  191.   Show-/HideMouse erweitert.
  192. - VDIInquires.GetLineStyle funktioniert nun, allerdings liefert das VDI
  193.   bei derzeitigen TOS-Versionen keine Werte zu den LineEnding-Parametern,
  194.   weshalb die Prozedur dann immer 'edgedLn' liefert. Sollte das VDI jedoch
  195.   die Werte liefern, werden automatisch die richtigen Werte weitergegeben.
  196. - Das Runtime-Modul für die TT-FPU verwendet nun auch die schnelleren 32 Bit-
  197.   Operationen der 68020/30 f. Multiplikation und Division. Das wirkt sich
  198.   praktisch auf alle solchen LONGCARD/LONGINT-Operationen aus, da der Compiler
  199.   hierzu immer die Runtime-Funktionen verwendet.
  200. - Multiplikationen von negativen Werten mit Konstanten haben u.U. falsche
  201.   Werte erzeugt, auch wurden bei Integer-Multiplikationen keine Überläufe
  202.   trotz $R+ gemeldet. Ist behoben (Runtime-Modul).
  203.  
  204. *** 1.5.91  Stand: Shell 2.2c ***
  205.  
  206. Bibliothek
  207. ----------
  208. - Die RandomGen-Funktionen zerstören nicht mehr das reservierte Register D3.
  209. - VDIControls.LoadFonts/UnloadFonts wurden nochmal korrigiert.
  210.  
  211. Shell
  212. -----
  213. - Bei manueller Eingabe einer Arbeitsdatei wird diese auf den angegebenen
  214.   Source-Pfaden gleich gesucht und der vollständige Pfad mit eingetragen.
  215.  
  216. GME
  217. ---
  218. - GMEConfig: Definitionstexte aktualisiert, so daß kein Versionskonflikt
  219.   mehr bei Neuübersetzung auftritt.
  220.  
  221. *** 21.5.91  Stand: Shell 2.2d ***
  222.  
  223. Bibliothek
  224. ----------
  225. - Storage/StorBase.Enlarge() liefern endlich korrekten 'ok'-Wert.
  226. - Bei Verwendung alternativer Betriebssysteme, wie z.B. "KAOS", werden
  227.   keine falschen ExitCodes (s. PrgCtrl.TermProcess) mehr zurückgegeben.
  228. - EasyGEM0.DoSimpleBox stürzt nicht mehr ab, wenn man Dialog mit Doppelklick
  229.   verläßt.
  230. - InOut.ReadReal/ReadLReal funktionieren wieder, wenn Eingabe von Datei
  231.   kommt (durch Aufruf von Redirect-/OpenInput).
  232. - FPUSupport.Save/RestoreContext funktionieren nun bei ST-FPU korrekt.
  233. - Debug/TOSDebug: Erzeugen keine falschen Ergebnisse mehr bei Real-Ausrücken.
  234. - VDIAttributes.DefUserFill ist nun benutzbar.
  235. - Files.GetFileName liefert den _Rest_ des Dateinamens, wenn die String-
  236.   Variable nicht für den ganzen Namen reicht.
  237.  
  238. Compiler
  239. --------
  240. - Tritt der Fehler 807 (Überlauf des Bezeichner-Stacks) auf, kann der Stack
  241.   über die Direktive "/I" vergrößert werden. Die Normalgröße ist 2000 Byte,
  242.   um ihn zu verdoppeln, ist beispielsweise "/I4000" in der Direktivenzeile
  243.   einzugeben.
  244. - Bei Zugriff auf Record-Elemente können nun Leerzeichen auch hinter dem
  245.   Punkt stehen.
  246. - Kein interner Fehler mehr, wenn bei $D+ Felder aus Konstant-Strukturen
  247.   selektiert/indiziert werden (z.B. "VT52.Seq[VT52.clearEOS]").
  248. - In FOR-Schleifen werden die evtl. verwendeten Register (D3-D7) nun immer
  249.   als Longword gesichert. Vorher wurde ggf. nur das Low-Word gerettet aber
  250.   dann durch eine MOVEQ-Instruktion das obere Word doch zerstört.
  251.  
  252. Shell
  253. -----
  254. - MM2SHELL.RSC: Lösch-/Kopier-Dialogox kommt auch mit mehr als 999 Dateien
  255.   klar.
  256.  
  257. Linker
  258. ------
  259. - Dürfte nun fehlerfrei mit dem Turbo-C Linker "MM2CLink" zu verwenden sein.
  260.  
  261. GME
  262. ---
  263. - Wird der Editor mit ALT-X (Beenden) verlassen und auf die Frage, ob
  264.   ein geänderter Text gespeichert werden soll, mit Nein geantwortet, fragt
  265.   er nun trotzdem auch bei weiteren evtl. nicht gesicherten Texten nach.
  266.  
  267. *** 9.8.91  Stand: Shell 2.2e, Compiler 4.1b, Linker 2.18, GME 1.2 ***
  268.  
  269. Bibliothek
  270. ----------
  271. - Debug (GEMDebug) rettet ggf. den Fehlerstatus des letzten GEM-Aufrufs,
  272.   so daß auch bei $D+ immer noch nach einem GEM-Aufruf der Fehler im
  273.   Programm mit "GEMEnv.GemError()" abgefragt werden kann und nicht sofort
  274.   ein GEM-Fehler gemeldet wird.
  275. - Loader: CallModule/LoadModule zerstören nicht mehr die Register D3/A4.
  276. - TextWindows.Open: Im Fehlerfall bleiben keine Speicherleichen zurück.
  277. - VDIInputs.KeyboardState dürfte nun funktionieren.
  278. - VDIEscapes.WriteToMetafile korrigiert.
  279.  
  280. Compiler
  281. --------
  282. - "CAST (SHORTCARD, -1) DIV 2" liefert nun korrektes Ergebnis (=$7FFF).
  283. - TC-Parameterübergabe benutzt A0/A1 auch bei PROCEDURE-Types.
  284. - TC-Parameterübergabe kommt auch mit mehreren ADDRESS-Parametern klar.
  285.  
  286. *** 15.9.91  Stand: Shell 2.2f, Compiler 4.1c, Linker 2.18, GME 1.2 ***
  287.  
  288. Shell
  289. -----
  290. - Die Box für die Linker-Optionen wurde erweitert. Entsprechend ist auch
  291.   die Projekt-/Parameterdatei erweitert worden, weshalb die bisherigen
  292.   M2P-Dateien nicht mehr von der neuen Shell akzeptiert werden. Wollen Sie
  293.   Ihre alten M2P-Dateien weiterverwenden, können Sie sie mit dem Programm
  294.   CONV_M2P.M aus dem UTILITY-Ordner konvertieren. Näheres im Quelltext.
  295. - Beide Shells laufen unter MultiGEM. Ist allerdings das GDOS "AMCLIGHT"
  296.   installiert, darf die Shell dann nicht mehr verlassen werden, weil sonst
  297.   das System abstürzt!
  298. - Die Shell sollte nun auch unter der Multitask-Erweiterung "MiNT" laufen.
  299.  
  300. Bibliothek
  301. ----------
  302. - MathLib0: Die Funktionen ld, ln, log, logar, power, lnP1 und artanh liefern
  303.   beim Megamax-Format (also ohne FPU) nun auch korrekte Werte bei vollständiger
  304.   Optimierung.
  305. - ShellMsg: Der Def-Text wurde verändert, d.h., daß fremde übersetzte Module,
  306.   die ShellMsg importieren, nun Versionskonflikte hervorrufen werden.
  307.   Das dürfte z.B. beim Turbo C-Linker MM2CLink der Fall sein, der dann ggf.
  308.   beim Autor upzudaten ist.
  309. - Files: SetDateTime setzt nun wirklich 'state' auf Null und verändert nicht
  310.   mehr ein Word irgendwo im Speicher.
  311. - ObjHandler kommt nun mit erweiterten Objekttypen zurecht.
  312. - Strings: Append schreibt nicht mehr hinter Ziel-String weiter, falls der
  313.   Ziel-String dabei vollständig gefüllt wird und der Source-String mit 0C endet.
  314. - Das System sollte nun auch unter der Multitask-Erweiterung "MiNT" laufen.
  315.   Ein Hinweis dazu: Die Benutzung der XBIOS-Funktion "Supexec()" während der
  316.   Prozeßterminierungsphase führt zum sofortigen Ende des Programms. D.h,
  317.   Prozeduren, die über "CatchProcessTerm" bei Programmende aufgerufen werden,
  318.   dürfen Supexec nicht aufrufen, sondern sollten stattdessen die MM2-Funktion
  319.   "Calls.CallSupervisor" oder die GEMDOS- Funktion "Super" benützen.
  320.  
  321. Compiler
  322. --------
  323. - Die Code-Adressen in der Protokoll-Datei stimmen nun wieder mit den Angaben
  324.   bei einem Laufzeitfehler und beim Scanner überein.
  325. - Werden Strings-Literale (Zeichenketten) an offene Felder übergeben,
  326.   z.B. "WriteString ('abc')", wird dem String nun immer ein Null-Byte (0C)
  327.   angefügt und auch der HIGH-Wert ist entsprechend um Eins höher.
  328.   Aber Vorsicht: Werden String-Variable übergeben, können die immer noch
  329.   bis zum letzten Zeichen gefüllt sein, so daß nicht sicher ist, daß jeder
  330.   String immer mit einem Null-Byte abgeschlossen ist. Diese Änderung wurde
  331.   v.A. zur Erleichterung im Umgang mit der Magic GEM Bibliothek von Peter
  332.   Hellinger eingeführt, wo es nun nicht mehr nötig ist, ein extra 0C-Zeichen
  333.   an Zeichenketten bei der Übergabe an die TOS-Funktionen anzufügen.
  334. - Keine Fehler oder Datenmüll mehr beim Übersetzen im GME mit Debug-Modus ($D+).
  335. - "Konstante IN Set-Konstante" liefert nun richtige Ergebnisse.
  336. - Der Set-Operator für symmetrische Differenz "/" berücksichtigt nun nicht
  337.   mehr nur die ersten 8 Elemente bei Sets bis 32 Elemente (z.B. BITSET).
  338. - Kein interner Fehler mehr bei vergessenen Klammern von Funktionsaufrufen.
  339. - Kein interner Fehler mehr bei $D+ und LONGREAL-Funktionsergebnissen.
  340. - Kein Fehler mehr bei LONGINT-Division, wenn durch eine Konst >= 2^16 geteilt
  341.   wird.
  342. - Kein Arithmetischer Überlauf mehr bei Indizierung mit LONGCARD-Variablen auf
  343.   Arrays mit Feldgröße > 1 Byte (z.B. bei 'LONGARRAY OF CARDINAL').
  344.  
  345. Linker
  346. ------
  347. - Erzeugt nun optional eine Symboldatei, in der alle Module und Prozeduren
  348.   samt ihren Adressen im erzeugten Programm aufgeführt werden.
  349.   Mehr dazu im LIESMICH, Kapitel 9. (Linker).
  350.  
  351. *** 03.04.92  Fertigstellung der Version 2.3, Compiler 4.2, Linker 2.19 ***
  352.  
  353. - Achtung: Die beim vorigen System 2.3 mitgelieferte Datei MM2DEF.M2L ist
  354.   defekt! Sie muß mit dem Programm RepairLIB korrigiert werden!
  355.  
  356. Compiler V4.2c
  357. --------------
  358. - Coroutinen funktionieren wieder (kein Stacküberlauf mehr). Der Fehler
  359.   lag im Runtime-Modul.
  360. - Vergißt man ein RETURN in einer Prozedur, die ein Ergebnis liefern soll,
  361.   wird dies nun auch zur Laufzeit wieder erkannt (V4.2b tat dies nicht).
  362.  
  363. Linker V2.20
  364. ------------
  365. - Erzeugt nun optional eine Datei, die die Module in der Reihenfolge
  366.   auflistet, in der sie initialisiert werden. Dazu ist beim MM2Link-Aufruf
  367.   die Option "-I" zu verwenden. Es wird dann eine Datei mit dem Namen
  368.   des gelinkten Programms und der Endung "M2I" erzeugt. S.a. LIESMICH.TXT
  369.  
  370. Bibliothek
  371. ----------
  372. - GEM (EventHandler): Watchdog auf "timer" kann nicht mehr zu Stacküberlauf
  373.   führen (kein rekursiver ShareTime-Aufruf mehr).
  374. - TextWindows: Der Zeichensatz (Font) kann nun gewählt werden. Dazu ist die
  375.   Funktion "ReSpecify" erweitert worden. Näheres im Def-Text.
  376. - WindowLists: Der Zeichensatz (Font) kann nun gewählt werden. Dazu ist die
  377.   Funktion "SetListWL" erweitert worden. Näheres im Def-Text.
  378. - WindowLists.AddEntryWL/AppendEntryWL/RemoveEntryWL funktionieren nun
  379.   korrekt.
  380. - Das InOut-Fenster hat keinen "force"-Modus mehr, d.h, es wird nicht mehr
  381.   automatisch nach vorne geholt, wenn Ausgaben darauf geschehen. Wen das
  382.   stört, soll einfach "noForce" durch "forceCursor" im Modul "GEMIO.I"
  383.   ersetzen und nach Neuübersetzung die Shell neu linken.
  384. - TextWindows: Auch, wenn Force-Modus = "noForce", wird Fenster nach vorn
  385.   geholt, wenn eine Eingabe erwartet wird.
  386. - VDIInputs: Die Funktionen 'InstallTimerProc', 'RemoveCurChgProc',
  387.   'InstallMsMoveProc' und 'InstallButChgProc' funktionieren (wieder).
  388. - GEMEnv: Trat beim letzten GEM-Aufruf ein Fehler auf, wird er nicht mehr
  389.   automatisch mit einer Fehlermeldung angezeigt sondern ignoriert. Soll
  390.   wie gewohnt ein Fehler gemeldet werden, ist GEMEnv.ErrorProc einer Prozedur
  391.   zuzuweisen, die den Fehler meldet - die bisher dafür benutzte Routine sah
  392.   so aus:
  393.         (*$L-*)
  394.         PROCEDURE GemErrorHandler;
  395.           BEGIN
  396.             ASSEMBLER
  397.                 TRAP    #6
  398.                 DC.W    MOSGlobals.GemErr
  399.             END
  400.           END GemErrorHandler;
  401.         (*$L=*)
  402.   Die GemError()-Abfrage funktioniert weiterhin.
  403. - Files.Create: Nun geht der Modus 'appendSeqTxt' auch unter MiNT/MTOS.
  404. - GrafBase.LFramePoints funktioniert nun korrekt.
  405. - Start unter Mag!X-Versionen über V2.0 funktioniert nun (Modul 'MOSCtrl').
  406. - Der Loader kann nun die Module auch ins TT-RAM laden.
  407. - Definition des internen Moduls 'ModBase' wurde verändert.
  408. - TimeConvert.DateToText/TimeToText korrigiert (D.Steins)
  409. - Loader: Wenn sowohl eine ST- als auch eine TT-FPU im Rechner vorhanden war,
  410.   wurden Module für die ST-FPU unter der passend gelinkten Shell mit einer
  411.   Fehlermeldung abgewiesen. Das ist behoben.
  412. - AESMisc: FindApplication funktioniert nun.
  413. - GEMError: LoaderMsg[17] verbessert.
  414. - PrgCtrl/MOSCtrl/M2Init: Der Deinitialisierungsvorgang wurde geändert: Nun
  415.   werden die (über CatchProcessTerm/CatchRemoval) angemeldeten Abmeldfunktionen
  416.   sofort bei Beendigung des Programms (per TermProcess) aufgerufen. Bisher
  417.   passierte dies erst in einer Routine, die im vom TOS bereitsgestellten
  418.   etv_term-Vektor eingeklinkt ist. Das bereitete teilweise aber Probleme mit
  419.   Betriebssystemen, wie MiNT oder Mag!X. Nur für den Fall, daß das Programm
  420.   nun auf eine "unsaubere" Art über einen direkten Aufruf von GEMDOS.Pterm()
  421.   abgebrochen wird (passiert z.B., wenn man im Templemon das "Q"-Kommando
  422.   benutzt und wenn man Ctrl-C während einer Ein-/Ausgabe über GEMDOS, z.B.
  423.   durch Einbinden des GEMDOSIO-InOut-Treibers, drückt), wird die Abmeldephase,
  424.   wie früher, über die im etv_term-Vektor installierte Routine durchgeführt.
  425.   Allerdings wird dann u.U. ein falscher Exitcode an das aufrufende Programm
  426.   zurückgegeben (dafür gibt es dann aber auch keine Probleme mehr mit MiNT
  427.   oder Mag!x). Da dies aber die Ausnahme ist, sollte es nicht weiter stören.
  428.   Unterm Strich bedeutet das: Man sollte das Programm nie mit einem direkten
  429.   Aufruf der GEMDOS-Funktion Pterm() sondern über PrgCtrl.TermProcess beenden.
  430. - Das Granule-Modul hatte noch einige böse Fehler, bei denen es Speicher
  431.   überschrieb, der ihm nicht gehörte. Das machte offenbar meist keine Probleme
  432.   auf den alten TOS-Versionen, während es unter Mag!X schnell zu Abstürzen
  433.   führte. So lief der GME-Editor z.B. überhaupt nicht unter Mag!X (er benutzt
  434.   Granule als einziges MM2-Programm).
  435.  
  436. Compiler V4.3
  437. -------------
  438. - Konstanten werden nicht mehr mitten im Code sondern dahinter abgelegt.
  439.   Solche, die mit der CONST-Anweisung deklariert sind, werden nur noch
  440.   einmal abgelegt, egal, wie oft sie benutzt werden (bisher wurden solche
  441.   Konstanten pro Zugriff jeweils separat im Code abgelegt).
  442. - Damit der Loader die Module im TT-RAM ablegt, legt der Compiler im Modul-
  443.   Header bei Offset 58 ein Long ab, das wie beim Header in gelinkten Programmen
  444.   die Flags für Verwendung des TT-RAM usw. enthält. Der Wert ist immer 7.L,
  445.   d.h, jedes mit diesem Compiler erzeugte Modul landet im TT-RAM, wenn vor-
  446.   handen.
  447.  
  448. Compiler V4.3b
  449. --------------
  450. - Sollte Code für die "ST-FPU" unter der entsprechend gelinkten Shell erzeugt
  451.   werden, klappte es nicht ohne die Direktive "+F", wenn zusätzlich eine
  452.   TT-FPU im Rechner vorhanden war. Dies ist korrigiert.
  453.  
  454. Linker V2.31
  455. ------------
  456. - Konstanten werden wie Prozeduren beim optimierten Linken ggf. wegoptimiert.
  457.   Die Konstanten werden allerdings noch nicht im DATA-Segment abgelegt sondern
  458.   gehören weiterhin zum CODE-Segment, d.h., sie dürfen nicht verändert werden
  459.   (was ja z.B. durch SYSTEM.CADR möglich wäre)!
  460. - Ein echtes DATA-Segment kann nun erzeugt werden. Mehr dazu im LIESMICH.TXT.
  461.  
  462. *** 15.01.94  Fertigstellung der Version 2.3e, Compiler 4.3b, Linker 2.31 ***
  463.  
  464. Bibliothek
  465. ----------
  466. - Die Routinen für die ST-FPU liefen nicht auf Mega STEs. Das lag daran, daß
  467.   entgegen der üblichen Praxis, die Low-Bytes der FPU-Register nicht auf
  468.   ihren ungeraden Adressen angesprochen werden dürfen, sondern nur wortweise,
  469.   sonst tritt ein Address-Error auf. Die Module Convert, Runtime, MathLib0
  470.   (alle im ST_FPU-Ordner) sowie FPUSupport und SFP004 wurden dahingehend
  471.   angepaßt.
  472. - Startete man in der Shell V2.3e ein gelinktes Programm, das keine eigene
  473.   Error-Behandlung hat und trat dann z.B. ein Bus-Error auf, meldete sich,
  474.   wie üblich, die GEMError-Box der Shell. Allerdings führte die Beendigung
  475.   des Programms auch zur Fehlern und Abbruch der Shell. Dies ist nun wieder
  476.   behoben (lag an Fehler in MOSCtrl).
  477. - Das Feature der vorigen Version, daß der Loader die Module im TT-RAM ablegt,
  478.   falls möglich, führte nun beim Granule-Modul zu Fehlern, weshalb u.a. der
  479.   GME nicht mehr auf TT-Rechnern richtig lief. Der Fehler ist nun im Granule-
  480.   Modul so korriert, daß es wieder nur den Speicher das ST-RAM benutzt, auch
  481.   wenn TT-RAM verfügbar wäre. Wer das Granule-Modul so einsetzen möchte, daß
  482.   auch das TT-RAM benutzt wird, soll sich an T.Tempelmann wenden. Es ist eine
  483.   einfache Lösung dafür möglich, die allerdings ca. 100 KB bei TT-Rechnern
  484.   zusätzlich verschwendet.
  485.   Nebenbei wurde die Dokumentation im Definitionstext v. Granule ein wenig
  486.   erweitert.
  487. - Storage-/StorBase.AllAvail führt nicht mehr zu Abstürzen, wenn der
  488.   verbleibende Stack zu klein ist (passierte v.A. bei Verwendung unter Mag!X).
  489.  
  490. Compiler V4.3c
  491. --------------
  492. - Kein "Stacküberlauf" (Fehler #852) mehr bei komplizierteren Ausdrücken.
  493. - Der Fehler "BOOLEAN-Ausdruck zu komplex" kommt nun auch erst bei mehr als
  494.   256 zu erzeugenden Sprungbefehlen innerhalb eines Ausdrucks. Bisher lag
  495.   die Schranke bei 20 (so waren z.B. nur 20 OR-Verknüpfungen innerhalb einer
  496.   IF-Anweisung möglich).
  497. - Mittels "CONST Wr = InOut.WriteString" kann "Wr" benutzt werden, um auf
  498.   WriteString zuzugreifen.
  499. - Definitionsmodule erhalten nun die Kennung 6.
  500. - Kein interner Fehler mehr bei CONST-Anweisungen, bei denen Konstanten mit
  501.   jeweils weniger als 16 Bytes zu einer Konstante mit mind. 16 zusammengesetzt
  502.   werden.
  503.  
  504. GME
  505. ---
  506. - Wie oben beschrieben, funktioniert der GME nun auch wieder bei TT-Rechnern,
  507.   allerdings nutzt er nur ST-RAM.
  508.  
  509. *** 16.03.94  Fertigstellung der Version 2.3f, Compiler 4.3c ***
  510.  
  511. Compiler V4.3d
  512. --------------
  513. - Die Verwendung des freien Speichers (MiNT, Magix) sowie die
  514.   Aufteilung des verwendeten Speichers (insbes. Fehler 807 und
  515.   823) kann nun konfiguriert werden (Optionen /<, />, /A, /I).
  516.   Siehe dazu Kap. 8 in LIESMICH.TXT.
  517. - Bei Verwendung von "Value Constructors" konnte es in der V4.3c
  518.   passieren, daß ein interner Fehler am Ende des Übersetzens
  519.   auftrat, mitunter auch ein Totalabsturz des Rechners, weil dabei
  520.   der gesamte obere Speicher überschrieben wurde.
  521.  
  522. Bibliothek
  523. ----------
  524. - StorBase.MemSize zerstörte das Register D6, was sich auch auf
  525.   Storage.DEALLOCATE auswirkte. Ein zerstörtes D6-Register führt
  526.   z.B. zu falscher Ausführung von FOR-Schleifen.
  527. - MOSCtrl: Der Deinitialisierungsvorgang wurde nochmal korrigiert,
  528.   so daß es nun nach ausführlichen Tests zu keinen Inkompatibilitäten
  529.   mehr kommt (bisher gab es noch Probleme mit MetaDOS, Quantos und
  530.   einigen anderen Programmen, die sich im TRAP#1 installierten).
  531.  
  532. Utilities
  533. ---------
  534. - Im UTILITY-Ordner befindet sich nun "StorUtils" von Gerd
  535.   Castan. Sie bieten Funktionen zum Überprüfen von allozierten
  536.   Speicherbereichen und damit verbundenen Pointern. Sehr hilfreich
  537.   zum Debuggen komplexer Programme mit dynamischen Datenstrukturen.
  538.  
  539. *** 08.06.94  Release der Version 2.3g, Compiler 4.3d ***
  540.  
  541. Compiler V4.3e
  542. --------------
  543. - In V4.3c hatte sich durch die Änderung für BOOLEAN-Ausdrücke ein neuer
  544.   Fehler eingeschlichen, der bei einigen Ausdrücken zur Meldung "interner
  545.   Fehler" führte. Ist behoben.
  546.  
  547. Linker V2.33
  548. ------------
  549. - Es konnte vorkommen, daß sich der Linker beim Optimieren aufhängte.
  550.   Dies kommt offenbar davon, daß der Compiler Referenzen auf leere oder
  551.   unbenutzte Konstanten ins das Modul einfügt und der Linker damit nicht
  552.   umgehen konnte. Der "Fehler" ist im Compiler noch drin, aber dürfte
  553.   sich nicht weiter schädlich auswirken.
  554.  
  555. *** 02.02.95 ***
  556.  
  557. GEP_ED V2.U
  558. -----------
  559. - Anpassung an MagiCMac. Sollte nebenbei nun auch mit anderen Auflösungen
  560.   bei Ataris klarkommen, wurde aber noch nicht getestet.
  561.  
  562. *** 11.04.95 ***
  563.  
  564. Bibliothek
  565. ----------
  566. - SysInfo.CPU() erkennt nun auch die 68040-CPU
  567. - Loader/ModBase.ExecProcess: Nach dem Laden & Relozieren von Modulen wird
  568.   der Cache, insbes. bei einer 68040, gelöscht. Dies ist nötig, weil sonst
  569.   gelegentlich Abstürze mit einer 68040-CPU beim Laden von Modulen auftreten.
  570.   (Leider half das nix - es gibt immer noch sporadisch Fehler beim Laden
  571.   der Module unter MagiCMac mit 68040-CPU).
  572.  
  573. - 29.10.95, M2INIT.M:
  574.   Auf dem Stack werden 32 Byte Platz gelassen, damit es keine
  575.   "Memory Violation" unter MiNT mit aktivem Speicherschutz gibt.
  576.  
  577. *******************************************************************************
  578.  
  579. Übrigens, vielen Dank an diejenigen, die uns die Fehler - teils sehr
  580. ausführlich (auf Disk usw.) - mitgeteilt haben!
  581.  
  582. Thomas Tempelmann
  583.